#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
//int cmp(void* e1, void* e2)
//{
//    return *(int*)e1 - *(int*)e2;
//}
//int main()
//{
//    int n = 0;
//    int m = 0;
//    int i = 0;
//    scanf("%d%d", &n, &m);
//    int* zmh = (int*)malloc((n + m) * sizeof(int));
//    for (i = 0; i < n + m; i++)
//    {
//        scanf("%d", &zmh[i]);
//    }
//    qsort(zmh, m+n ,sizeof(int), cmp);
//    for (i = 0; i < n + m; i++)
//    {
//        printf("%d ", zmh[i]);
//    }
//    return 0;
//}	
//int main()
//{
//	int arr[10];
//	int sum = 0;
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{	
//		sum += (scanf("%d", &arr[i]), arr[i]);
//	}
//	printf("%d", sum / 10);
//}
//int main()
//{
//	char ls[]  = { "****************************************" };
//	char cmy[] = { "shuangsuiwuyizhumengyuan,mengyuanchicule" };
//	int i = 0;
//	for (i = 0; i < sizeof(ls) / sizeof(char); i++)
//	{
//		ls[i] = ls[i] ^ cmy[i];
//		cmy[i] = ls[i] ^ cmy[i];
//		ls[i] = ls[i] ^ cmy[i];
//		
//	}printf("%s\n",ls);
//}
int MidFind(int* nums, int lift, int right, int x)
{
	//int mid = lift + (right - lift) / 2;
	while (lift <= right)
	{
		int mid = lift + (right - lift) / 2;
		if (nums[mid] > x)
		{
			right = mid - 1;
		}
		else if (nums[mid] < x)
		{
			lift = mid + 1;
		}
		else
		{
			return mid;
		}
	}
	if (lift > right)
		return -1;
}
void test1()
{
	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11 };
	printf("%d\n", MidFind(arr, 0, sizeof(arr) / sizeof(int) - 1, 4));
}
void test2()
{
	int n = 0;
	while (scanf("%d", &n) == 1)
	{
		int i = 0;
		for (i = 1; i <= n; i++)
			{ 
				int j = 0;
				for (j = 1; j <= i; j++)
				{
					printf("%3dx%-3d=%3d ", j, i, j * i);
				}
				printf("\n");
			}
	}
	
}
int test3(int year)
{
	if ((!(year % 4) && (year % 100)) || !(year % 400))
		return 1;
	else
		return -1;
}
void is_prime(int x, int y)
{
	int i = 0;
	for (i = x; i <= y; i++)
	{
		int j = 0;
		int flag = 1; 
		for (j = 2; j <= (int)sqrt(i); j++)
		{
			if (!(i % j))
			{
				flag = 0;
				break;
			}
		}
		if (flag)
			printf("%d ", i);
	}
}
void NumsInit(int* p,int size)
{
	memset(p,0,size);
}
void Numsprint(int* p,int sz)
{
	for (int i = 0; i < sz; i++)
	{
		printf("%d ", p[i]);
	}
	printf("\n");
}
void NumsReverse(int*p, int lift,int right)
{
	while (lift < right)
	{
		int tmp = p[lift];
		p[lift] = p[right];
		p[right] = tmp;
		lift++;
		right--;
	}
}
//int main()
//{
//	int zmh[] = { 1,2,3,4,5,6,7,8,9,10 };
//	Numsprint(zmh,sizeof(zmh)/sizeof(zmh[0]));
//	NumsReverse(zmh,0, sizeof(zmh) / sizeof(zmh[0])-1);
//	Numsprint(zmh, sizeof(zmh) / sizeof(zmh[0]));
//	NumsInit(zmh, sizeof(zmh));
//	Numsprint(zmh, sizeof(zmh) / sizeof(zmh[0]));
//	return 0;
//}
//void f(int N)
//{
//	int count = 0;
//	for (int k = 0; k < 2 * N; ++k)
//	{
//		count++;
//	}
//	int M = 10;
//	while (M++)
//	{
//		++count;
//	}
//	printf("%d", count);
//}
//int main()
//{
//	f(12);
//}